home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / poprelayd_auth.nasl < prev    next >
Text File  |  2005-03-31  |  4KB  |  116 lines

  1. # This script was written by Michel Arboi <arboi@alussinan.org>
  2. # GPL
  3. #
  4. # Script audit and contributions from Carmichael Security <http://www.carmichaelsecurity.com>
  5. #      Erik Anderson <eanders@carmichaelsecurity.com>
  6. #      Added BugtraqID and CVE
  7. #
  8. # References:
  9. # Date:  Tue, 3 Jul 2001 19:05:10 +0200 (CEST)
  10. # From: "Andrea Barisani" <lcars@infis.univ.trieste.it>
  11. # To: bugtraq@securityfocus.com
  12. # Subject: poprelayd and sendmail relay authentication problem (Cobalt Raq3)
  13. #
  14.  
  15. if(description)
  16. {
  17.  script_id(11080);
  18.  script_bugtraq_id(2986);
  19.  script_version ("$Revision: 1.7 $");
  20.  script_cve_id("CVE-2001-1075");
  21.  name["english"] = "poprelayd & sendmail authentication problem";
  22.  name["francais"] = "ProblΦme d'authentification de poprelayd & sendmail";
  23.  script_name(english:name["english"],
  24.           francais:name["francais"]);
  25.  
  26.  desc["english"] = "
  27. The remote SMTP server allows relaying for authenticated users. 
  28. It is however possible to poison the logs; this means that spammers
  29. would be able to use your server to send their e-mails to
  30. the world, thus wasting your network bandwidth and getting you
  31. blacklisted.
  32.  
  33. *** Some SMTP servers such as Postfix will display a false positive
  34. *** here
  35.  
  36. Risk factor : Low
  37.  
  38. Solution : Disable poprelayd";
  39.  
  40.  
  41.  script_description(english:desc["english"]);
  42.             
  43.  
  44.  summary["english"] = "Checks if the remote mail server can be used as a spam relay"; 
  45.  summary["francais"] = "VΘrifie si le serveur de mail distant peut etre utilisΘ comme relais de spam";
  46.  script_summary(english:summary["english"],
  47.           francais:summary["francais"]);
  48.  
  49.  script_category(ACT_GATHER_INFO);
  50.  
  51.  script_copyright(english:"This script is Copyright (C) 2002 Michel Arboi",
  52.            francais:"Ce script est Copyright (C) 2002 Michel Arboi");
  53.  
  54.  family["english"] = "SMTP problems";
  55.  family["francais"] = "ProblΦmes SMTP";
  56.  script_family(english:family["english"], francais:family["francais"]);
  57.  script_dependencie("find_service.nes", "sendmail_expn.nasl", 
  58.         "smtp_relay.nasl", "smtp_settings.nasl");
  59.  script_exclude_keys("SMTP/wrapped", "SMTP/postfix", "SMTP/qmail");
  60.  script_require_ports("Services/smtp", 25);
  61.  exit(0);
  62. }
  63.  
  64.  
  65. include("smtp_func.inc");
  66.  
  67. # can't perform this test on localhost
  68. if(islocalhost())exit(0);
  69.  
  70. port = get_kb_item("Services/smtp");
  71. if(!port)port = 25;
  72. if(!get_port_state(port)) exit(0);
  73.  
  74. soc = open_sock_tcp(port);
  75. if (!soc) exit(0);
  76.  
  77. data = smtp_recv_banner(socket:soc);
  78. if(!data)exit(0);
  79.  
  80. domain = get_kb_item("Settings/third_party_domain");
  81.  
  82. hel = string("HELO ", domain, "\r\n");
  83. send(socket:soc, data:hel);
  84. data = recv_line(socket:soc, length:1024);
  85. mf1 = string("MAIL FROM: <test_1@", domain, ">\r\n");
  86. send(socket:soc, data:mf1);
  87. data = recv_line(socket:soc, length:1024);
  88. rc1 = string("RCPT TO: <test_2@", domain, ">\r\n");
  89. send(socket:soc, data: rc1);
  90. data = recv_line(socket:soc, length:1024);
  91. if ("Relaying denied. Please check your mail first." >< data) { suspicious=1;}
  92. else if(ereg(pattern:"^250 .*", string:data))exit(0);
  93.  
  94. q = raw_string(0x22);    # Double quote
  95. h = this_host();
  96. mf = string("mail from:", q, "POP login by user ", q, "admin", q,
  97.     " at (", h, ") ", h, "@example.org\r\n");
  98. send(socket: soc, data: mf);
  99. data = recv_line(socket:soc, length:1024);
  100. close(soc);
  101. #
  102. #sleep(10);
  103. #
  104. soc = open_sock_tcp(port);
  105. if (!soc) exit(0);
  106.  
  107. data = smtp_recv_banner(socket:soc);
  108. send(socket:soc, data:hel);
  109. data = recv_line(socket:soc, length:1024);
  110. send(socket:soc, data:mf1);
  111. data = recv_line(socket:soc, length:1024);
  112. send(socket:soc, data: rc1);
  113. i = recv_line(socket:soc, length:4);
  114. if (i == "250 ") security_warning(port);
  115. close(soc);
  116.